package oop;

/**
 * Created with IntelliJ IDEA.
 * ClassName: RecursionExer02
 * Package: oop
 * Description:
 * User: fzykd
 *
 * @Author: LQH
 * Date: 2023-11-19
 * Time: 20:52
 */


//不死神兔  就是斐波那契数列
public class RabbitExer {
    /**
     * 递归实现不死神兔 又叫斐波那契数列
     * 假设一对刚出生的小兔一个月就能长大 在过一个月又生一对小兔子 并且此后都生一对小兔 并且没有死亡
     * 问2年后 有多少对兔子 24个月
     * 月份   1   2   3   4   5   6
     * 对数   1   1   2   3   5   8
     *
     * @param args
     */
    public static void main(String[] args) {
        RabbitExer exer = new RabbitExer();
        int mouth = 24;
        System.out.println("兔子的对数为: " + exer.getRabbitNumber(mouth));
    }

    public int getRabbitNumber(int month) {
        if (month == 1) {
            return 1;
        } else if (month == 2) {
            return 1;
        } else {
            //和 那两个函数一样 往已知的方法去靠
            return getRabbitNumber(month - 1) + getRabbitNumber(month - 2);
        }
    }

}

/**
 * 走台阶问题 假如有10阶楼梯 小朋友每次只能向上走2阶 或者 1阶 请问一共有多少次走法呢
 * 台阶数 1    2           3                 4   5   6....
 * 走法  1    2（1 1，2）   3（12，21，111）   5
 * 从n为3开始
 * 加入是走10级台阶 就是 9级台机 + 8级台阶的和
 * f(n) = f(n-1) + f(n-2)
 */
